/*

  The contents of this file are subject to the Mozilla Public License Version
  1.1 (the "License"); you may not use this file except in compliance with
  the License. You may obtain a copy of the License at 
  
           http://www.mozilla.org/MPL/ 
  
  Software distributed under the License is distributed on an "AS IS" basis,
  WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  for the specific language governing rights and limitations under the License. 
  
  The Original Code is Indigo framework applicatif.
  
  The Initial Developer of the Original Code is
  Olivier Bugalotto (aka Iteratif) <olivier.bugalotto@iteratif.net>.
  Portions created by the Initial Developer are Copyright (C) 2004-2008
  the Initial Developer. All Rights Reserved.
  
  Contributor(s) :
  
*/
package indigo.collections
{
	/**
	 * L'interface <code>IDictionary</code> propose une API pour construire<br>
	 * des collections non generiques de paires cle/valeur.
	 * 
	 */
	public interface IDictionary extends ICollection
	{
		/**
		 * Obtient un tableau contenant les cles de la collection
		 * @return 
		 * 
		 */
		function get keys():ICollection;
		/**
		 * Obtient un tableau contenant les valeurs de la collection
		 * @return 
		 * 
		 */
		function get values():ICollection;
		
		/**
		 * Ajoute un element avec la cle et la valeur fournies a la collection
		 * @param key
		 * @param item
		 * 
		 */
		function addItem(key:Object, item:Object):void;
		/**
		 * Obtient la valeur depuis la cle specifiee.
		 * @param key
		 * @return 
		 * 
		 */
		function getValue(key:Object):Object;
		/**
		 * Supprime tous les elements de la collection
		 * 
		 */
		function clear():void;
		/**
		 * Savoir si la collection contient un element pour la cle specifiee
		 * @param key
		 * @return 
		 * 
		 */
		function contains(key:Object):Boolean;
		/**
		 * Supprime de la collection l'element ayant la cle specifiee
		 * @param key
		 * 
		 */
		function removeItem(key:Object):void;
	}
}